package uds.data;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/* Classe permettant de mettre en place les préférences de l'utilisateur c'est-à-dire
 * de stocker les paramètres de la classe ParamètreActivity et de savoir si la base de données
 * a déjà été importé ou non
 */

public class UserPreference 
{
	// Attribut "campus_ref" permettant de choisir le campus affiché par défaut dans Plan et Campus
	public static final String ATR_CAMPUS_REF = "campus_ref";
	private static final String VAL_CAMPUS_REF = "Central";

	// Attribut "geolocalisation" permettant de savoir si l'utilisateur désire utiliser ou non cette dernière
	public static final String ATR_GEOLOCALISATION = "geolocalisation";
	private static final String VAL_GEOLOCALISATION = "oui";

	// Attribut "donnees_importees" permettant de savoir si les données ont été importées dans la base de données
	public static final String ATR_DONNEES_IMPORTEES = "donnees_importees";
	private static final String VAL_DONNEES_IMPORTEES = "non";

	// Attribut "derniere_maj_database" permettant de connaitre la date de dernière mise à jour
	public static final String ATR_DERNIERE_MAJ_DATABASE = "derniere_maj_database";
	private static final String VAL_DERNIERE_MAJ_DATABASE = "jamais";
	
	// Nom du fichier des préférences
	public static final String PREF_NAME = "Preference_POI";
	
	private SharedPreferences settings;
	private Editor editor;
	
	// Initialisation des préférences 
	public UserPreference(Context context)
	{
        settings = context.getSharedPreferences(PREF_NAME, 0);
        editor = settings.edit();
	}
	
	// Permet de récupérer la valeur d'une préférence au choix grâce à l'attribut "pref"
	public String getPreference(String pref)
	{
		return settings.getString(pref, "");
	}
	
	// Permet de changer la valeur d'une préférence "pref" à une nouvelle valeur "val"
	public void setPreference(String pref, String val)
	{
        editor.putString(pref, val);
        editor.commit();
	}
	
	// Méthode permettant de remettre par défaut les préférences de l'utilisateur
	public void setDefaultPreferences()
	{
        editor.putString(UserPreference.ATR_CAMPUS_REF, UserPreference.VAL_CAMPUS_REF);
        editor.putString(UserPreference.ATR_GEOLOCALISATION, UserPreference.VAL_GEOLOCALISATION);
        editor.putString(UserPreference.ATR_DONNEES_IMPORTEES, UserPreference.VAL_DONNEES_IMPORTEES);
        editor.putString(UserPreference.ATR_DERNIERE_MAJ_DATABASE, UserPreference.VAL_DERNIERE_MAJ_DATABASE);
        editor.commit();
        System.out.println("Mise en place des préférences par défaut !");
	}
	
	// Fonction permettant de déterminer s'il s'agit du premier lancement de l'application en vérifiant la présence ou non des préférences
	public boolean est_premier_lancement()
	{
		boolean res = false;
		if (this.getPreference(ATR_DONNEES_IMPORTEES).equals("") || this.getPreference(ATR_DONNEES_IMPORTEES).equals("non"))
		{
			res = true;
		}
		return res;
	}
	
	// Fonction permettant de supprimer les préférences de l'utilisateur
	public void removePreferences()
	{
		editor.clear();
		editor.commit();
	}
	
}
